
// 类似于单选题的选项 A B C
// 应用： 性别 （ 男  女  1 0  ）
// 固定选项
enum Color {
  /**
   * 红色
   */
  Red = '#abcdef',
  /**
   * 绿色
   */
  Green = '#bbcdef',
  /**
   * 蓝色
   */
  Blue = '#cbcdef'
}

console.log(Color.Red);
console.log(Color.Green);
console.log(Color.Blue);


// 枚举可以混合字符串和数字成员

enum Types1 {
  No = "No",
  Yes = 1,
  Nu = 23
}

// 预置值
const enum Types444444 {
  No = "No",
  Yes = 1,
  Nu = 23
}


enum Types13333333 {
  No = "No",
  Yes = 1,
  Nu = 23
}


// 接口枚举
// 定义一个枚举Types 定义一个接口A 他有一个属性red 值为Types.yyds
// 声明对象的时候要遵循这个规则

interface IEnumType2 {
  name: Types1
  color: Color
}

let objiety: IEnumType2 = {
  color: Color.Green,
  name: Types1.No
}



enum Enum {
  red = 0
}
let a = Enum.red
console.log(a); //0
let nameOfA = Enum[a];
console.log(nameOfA); //fall


const enum Enum3 {
  red = 0
}
let a3 = Enum3.red
console.log(a3); //0
// let nameOfA3 = Enum3[a3]; // 因为使用时常量枚举 所以映射失败
console.log(nameOfA); //fall


